package com.edu.compile.compiler;

import com.edu.compile.AbstractCompileResult;
import com.edu.compile.AbstractCompilerParser;
import com.edu.compile.ParserHolder;
import com.edu.compile.config.NodeConfig;
import com.edu.compile.template.ftl.call.NodeCall;
import com.edu.compile.template.ftl.node.NodeJs;
import com.edu.model.dto.NodeMetadata;
import org.springframework.stereotype.Component;

/**
 * node脚本解析
 *
 * @author yanzhao
 * @date 2021/10/26 23:44
 * @since 1.0.0
 */
@Component("node_compiler")
public class NodeCompiler extends AbstractCompilerParser<NodeConfig, NodeCall> {

    @Override
    public void compile(AbstractCompileResult abstractCompileResult, NodeMetadata nodeMetadata, NodeConfig nodeConfig, NodeCall nodeCall) {
        String script = nodeConfig.getScript();
        NodeJs nodeJs = new NodeJs();
        nodeJs.setScript(script);
        abstractCompileResult.putInnerScript(nodeMetadata.getNodeId(), ParserHolder.templateParser.parse(nodeJs));
    }
}
